#ifndef CUBE_ASSETMANAGER_H_
#define CUBE_ASSETMANAGER_H_

class AssetManager
{
friend class Body;
friend class Mesh;
friend class Effect;

public :
	AssetManager();
	~AssetManager();

	static bool					Find( const std::string& name );
	static Asset*				GetAsset( const std::string& name );
	static Body*				GetBody( const std::string& name );
	static Effect*				GetEffect( const std::string& name );
	static Mesh*				GetMesh( const std::string& name );
	static void					Register( const std::string& name, Asset* pAsset );
	static void					Unregister( const std::string& name );
	static void					UnregisterAll();

private :
	static std::map< std::string, Asset* >			_assets;
	static std::map< std::string, Body* >			_bodys;
	static std::map< std::string, Mesh* >			_meshes;
	static std::map< std::string, Effect* >			_effects;
};

#endif